import axios from 'axios'
import Utils from './CommonUtil'
import CacheUtils from './CacheUtils';

export default class NetUtils {
  static GET = 'GET';
  static POST = 'POST';
  static Token(){
    return CacheUtils.GetUserInfo('token');
  }

  static TokenData(data){
    data.token = NetUtils.Token();
    return data;
  }

  /**
   * 网络请求
   * @param url             @ 请求地址
   * @param params          @ 请求参数
   * @param successFuc      @ 成功回调方法
   * @param errorFunc       @ 失败回调方法
   * @param method          @ 请求方法
   * @constructor
   */
  static R(url, params, successFuc, errorFunc, method = NetUtils.GET) {

    let request = null;
    if (method === NetUtils.GET) {
      request = axios.get(url, params);
    } else if (method === NetUtils.POST) {
      request = axios.post(url, params);
    }

    if (Utils.empty(request)) return;

    request.then(function (response) {
      let res = response.data;
      let code = res.code;
      let msg = res.msg;

      if (code === 0) {
        // 成功回调方法
        successFuc(res);
      } else {
        // 失败回调方法
        if (Utils.isExitsFunction(errorFunc)) {
          errorFunc(res);
        } else {
          Utils.Toast(msg);
        }
      }
    }).catch(function (error) {
      console.log(error);
      let errorJson = {
        code: -100,
        data: null,
        msg: '服务器异常'
      };
      // 失败回调方法
      if (Utils.isExitsFunction(errorFunc)) {
        errorFunc(errorJson);
      } else {
        Utils.Toast(errorJson.msg);
      }
    })
  }
}
